/**
 * 给定字符串S，从字符串中反复移除ABC
 * 例如 ABABCC
 * 删除中间的ABC后，又会出现新的ABC，因此可以删光
 * 
 * 应该使用栈即可。这里使用了链表。
 */
#include<bits/stdc++.h>
using namespace std;

string S;
list<char> List;

int isOK(list<char>::iterator it){
	if(it == List.end()) return -1;
	if(*it != 'A') return 0;

	if(++it == List.end()) return -1;
	if(*it != 'B') return 0;
	
	if(++it == List.end()) return -1;
	if(*it != 'C') return 0;
	
	return 1;
}

void proc(){
    int n = S.length();
	List.assign(S.begin(), S.end());
	auto it = List.begin();
	auto et = List.end();
	while(1){
		while(1){
			auto tmp = isOK(it);
			if(-1 == tmp) goto L;
			if(1 == tmp) break;
			++it;
		}
		it = List.erase(it);
		it = List.erase(it);
		it = List.erase(it);

		auto tt = it;

		if(tt == List.begin()) continue;

		--tt;
		if(*tt == 'A') {
			it = tt; continue;
		}

		if(*tt != 'B' or tt == List.begin()) continue; 

		--tt;
		if(*tt == 'A'){
			it = tt;
		}
	}
	L:
	for(auto c : List) cout << c;
	cout << endl;
	return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> S;
	proc();
 	return 0;
}